package org.testcontainers.images.builder.dockerfile.statement;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class KeyValuesStatement extends Statement {
private static final ObjectMapper objectMapper = new ObjectMapper();
protected final Map<String, String> entries;
public KeyValuesStatement(String type, Map<String, String> entries) {
super(type);
this.entries = entries;
}
@Override
public void appendArguments(StringBuilder dockerfileStringBuilder) {
Set<Map.Entry<String, String>> entries = this.entries.entrySet();
Iterator<Map.Entry<String, String>> iterator = entries.iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
try {
dockerfileStringBuilder.append(objectMapper.writeValueAsString(entry.getKey()));
dockerfileStringBuilder.append("=");
dockerfileStringBuilder.append(objectMapper.writeValueAsString(entry.getValue()));
} catch (JsonProcessingException e) {
throw new RuntimeException("Can't serialize entry: " + entry, e);
}
if (iterator.hasNext()) {
dockerfileStringBuilder.append(" \\\n\t");
}
}
}
}